/**
 * 检验身份证
 * @param r 
 * @param v 
 * @param c 
 */
export const validateIdCardNo = (r: any, v: any, c: any) => {
  const reg = /^\d{3}(.{9}|.{12})(\d){3}|\d{2}[Xx]$/
  if (!c) return reg.test(v)
  if ((v ?? true) || v === '') c()
  if (!reg.test(v)) c('请输入正确的身份证')
  c()
}

/**
 * 校验手机号
 * @param r 
 * @param v 
 * @param c 
 */
export const validatePhone = (r: any, v: any, c?: any) => {
  const reg = /^1[3456789]{1}.{5}\d{4}$/
  if (!c) return reg.test(v)
  if ((v ?? true) || v === '') c()
  if (!reg.test(v)) c('请输入正确的手机号')
  c()
}

/**
 * 检验指定范围数字
 * @param range 整数范围[)
 * @param arg 
 */
export const validateInt = (range: number[], arg: any) => {
  const { r, v, c } = arg, min = range[0], max = range[1]
  if (range.length !== 2) c(new Error('参数错误'))
  if (isNaN(v)) c(new Error('请输入数字'))
  if (v % 1 !== 0) c(new Error('请输入整数'))
  if (v > max || v < min) {
    c(new Error(`请输入${min}-${max}的整数`))
  }
  c()
}

export const validateEmail = (r:any,v:any,c?:any) => {
  const reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
  if (!c) return reg.test(v)
  if ((v ?? true) || v === '') c()
  if (!reg.test(v)) c('请输入正确的身份证')
  c()
}
